package be.khleuven.screencasting.entiteiten;

import java.io.Serializable;
import java.util.Calendar;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author wouterrombaut
 */
@Entity
public class Screencast implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String filename;
    @Temporal(TemporalType.TIMESTAMP)//TIMESTAMP omdat we dan niet alleen datum maar ook tijd kunnen bijhouden
    private Calendar datum;
    private String titel;
    private String beschrijving;
    @Temporal(TemporalType.TIME)
    private Calendar lengte;
    private Long grootte;
    @ManyToMany
    private List tags;
    @OneToMany
    private List beheerders;
    private List berichten;//Commentaar op screencast
    private List quotaties;
    private List inhoudstafel;
    private List multiplechoices;
    private List openvragen;
    private List notas;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public List getBeheerders() {
        return beheerders;
    }

    public void setBeheerders(List beheerders) {
        this.beheerders = beheerders;
    }

    public List getBerichten() {
        return berichten;
    }

    public void setBerichten(List berichten) {
        this.berichten = berichten;
    }

    public String getBeschrijving() {
        return beschrijving;
    }

    public void setBeschrijving(String beschrijving) {
        this.beschrijving = beschrijving;
    }

    public Calendar getDatum() {
        return datum;
    }

    public void setDatum(Calendar datum) {
        this.datum = datum;
    }

    public String getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public Long getGrootte() {
        return grootte;
    }

    public void setGrootte(Long grootte) {
        this.grootte = grootte;
    }

    public List getInhoudstafel() {
        return inhoudstafel;
    }

    public void setInhoudstafel(List inhoudstafel) {
        this.inhoudstafel = inhoudstafel;
    }

    public Calendar getLengte() {
        return lengte;
    }

    public void setLengte(Calendar lengte) {
        this.lengte = lengte;
    }

    public List getMultiplechoices() {
        return multiplechoices;
    }

    public void setMultiplechoices(List multiplechoices) {
        this.multiplechoices = multiplechoices;
    }

    public List getNotas() {
        return notas;
    }

    public void setNotas(List notas) {
        this.notas = notas;
    }

    public List getOpenvragen() {
        return openvragen;
    }

    public void setOpenvragen(List openvragen) {
        this.openvragen = openvragen;
    }

    public List getQuotaties() {
        return quotaties;
    }

    public void setQuotaties(List quotaties) {
        this.quotaties = quotaties;
    }

    public List getTags() {
        return tags;
    }

    public void setTags(List tags) {
        this.tags = tags;
    }

    public String getTitel() {
        return titel;
    }

    public void setTitel(String titel) {
        this.titel = titel;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Screencast)) {
            return false;
        }
        Screencast other = (Screencast) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entiteiten.Screencast[id=" + id + "]";
    }
}
